iT邦幫忙

2024 iThome 鐵人賽

DAY 29
0
自我挑戰組

從免費網路資源中入門java系列 第 29

【Day29】Java - enum 列舉

  • 分享至 

  • xImage
  •  

在 Java 中,enum 是用來表示固定常數集合的資料類型。enum 是 "enumeration"(列舉)的縮寫,它允許開發者定義一組數量固定的常數,通常用於代表一些預定義的選項。enum適合用於處理像星期幾、季節、方向等有固定選項的情境。

Enum 基本用法

首先,定義一個名為 Size 的 enum,包含三個值:SMALL、MEDIUM 和 LARGE。

public enum Size {
    SMALL, MEDIUM, LARGE
}

使用 Enum 的範例

以下是利用 Size enum來判斷衣服尺寸的範例:

public class EnumExample {
    public static void main(String[] args) {
        Size selectedSize = Size.MEDIUM;

        switch (selectedSize) {
            case SMALL:
                System.out.println("您選擇了S號尺寸的衣服");
                break;
            case MEDIUM:
                System.out.println("您選擇了M號尺寸的衣服");
                break;
            case LARGE:
                System.out.println("您選擇了L號尺寸的衣服");
                break;
        }
    }
}
// output: 您選擇了M號尺寸的衣服

enum 是一種特殊的類別。除了代表一組常數,enum 還可以包含屬性、方法、建構子,就像一般的類別一樣。
定義一個 enum 時,其實就是在定義一個類別。每個 enum 常數(如 SMALL、MEDIUM、LARGE)都是 enum 類別的實例。每個實例都有自己特定的屬性和方法,也可以透過建構子來初始化屬性。

public enum Size {
    SMALL("S號"), MEDIUM("M號"), LARGE("L號");

    private final String description; // 定義屬性

    // 建構子,用來初始化屬性
    Size(String description) {
        this.description = description;
    }

    // 定義一個方法來取得屬性值
    public String getDescription() {
        return description;
    }

    // 可以定義其他方法,例如判斷是否為L號尺寸
    public boolean isLarge() {
        return this == LARGE;
    }
}

在上面的範例中,SMALL("S號"), MEDIUM("M號"), LARGE("L號") 這種寫法是為每個enum常數指定一個參數。
括弧中的參數相當於為每個枚舉常量定義了一個屬性值,這些值會在 enum 的建構函式中被使用。這樣可以讓每個枚舉常數有額外的資料。為了讓這個語法能夠正常工作,必須在 enum 類別中定義一個對應的建構函式來接受此參數。

並且可以這樣如下面範例運用上面寫的Size enum:

public class EnumExample {
    public static void main(String[] args) {
        Size size = Size.LARGE;

        System.out.println("選擇的尺寸是: " + size.getDescription());

        if (size.isLarge()) {
            System.out.println("這件是L號");
        } else {
            System.out.println("這件不是L號");
        }
    }
}
// output: 選擇的尺寸是: L號
// output: 這件是L號

上一篇
【Day28】Java 例外處理:如何處理錯誤和異常情況
下一篇
【Day30】入門Java的各種免費資源 & 結語
系列文
從免費網路資源中入門java30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言